package com.app.oral.service

import com.app.oral.model.UserSession

/**
 * 用户会话服务接口
 */
interface UserSessionService {
    
    /**
     * 创建用户会话
     */
    fun createSession(userId: Long, openid: String): UserSession
    
    /**
     * 验证会话是否有效
     */
    fun validateSession(sessionKey: String): UserSession?
    
    /**
     * 更新会话访问时间
     */
    fun updateSessionAccess(sessionKey: String)
    
    /**
     * 用户登出（失效所有会话）
     */
    fun logout(userId: Long): Boolean
    
    /**
     * 根据openid登出
     */
    fun logoutByOpenid(openid: String): Boolean
    
    /**
     * 失效指定会话
     */
    fun deactivateSession(sessionKey: String): Boolean
    
    /**
     * 检查用户是否已有活跃会话
     */
    fun hasActiveSession(openid: String): UserSession?
    
    /**
     * 清理过期会话
     */
    fun cleanExpiredSessions(): Int
}